perm filename PD[H,DOC] blob
sn#045018 filedate 1973-05-29 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 This section describes the differences between the PDP-10
C00009 00003 ADDRESS SWITCHES AND CONDITIONS
C00012 00004 STORE CYCLE DIFFERENCES
C00015 00005 PRIORITY INTERRUPTS
C00019 00006 UUO's AND UNIMPLEMENTED INSTRUCTIONS
C00023 00007 MISCELLANEOUS DIFFERENCES
C00026 00008 STATUS REGISTERS
C00028 00009 3. CONO APR,
C00030 00010 SUMMARY OF I/O DEVICES
C00032 00011 PDP-6 I/O BUS
C00034 ENDMK
C⊗;
This section describes the differences between the PDP-10
and the PDP-6. It also describes the modifications that have been
made.
The PDP-10 and the PDP-6 are not entirely program
compatible. However, the differences between the two machines,
except the floating point instructions, are very minor. The
following list is as complete as possible. This section supercedes
SAILON No.47 and No.47 Supplement 1.
FLOATING POINT INSTRUCTIONS
The instruction additions and changes on the PDP-10 were
designed with the specific intention of facilitating double precision
floating point calculation and cleaning up the operation of the PDP-6
arithmetic instructions.
1. The PDP-6 does not have the UFA (130) and DFN (131)
instructions.
2. The low order word of the FxxL instructions is different on
the two machines.
3. The PDP-10 FxxRI instructions are FxxRL on the PDP-6.
4. The PDP-6 does not have the divide check, floating overflow,
and floating exponent underflow flags. On the PDP-6, the floating
overflow flag is replaced with the PC change flag.
5. Rounding of FxxR instructions is handled in a different way
on the PDP-6. When the PDP-6 rounds a negative number whose
low-order part is exactly one-half, the round occurs toward zero. On
the PDP-10, one-half is rounded to give the more negative result.
6. Any floating add, subtract, or multiply instruction in which
the only significant bits of the answer are in the low-order word
before normalizing, produces a normalized non-zero result on the
PDP-10. On the PDP-6, the bits are lost.
PROCESSOR FLAGS
1. The PDP-6 PC change flag replaces the floating overflow flag
in the PDP-6 status word, PC word, and the JFCL instruction.
2. The PDP-6 does not have a divide check flag or a floating
exponent underflow flag.
3. The CPU and PI status bits are slightly different. (see
Status Register section)
ADDRESS SWITCHES AND CONDITIONS
1. The address switches on the PDP-6 are compared with the
unrelocated address rather than the relocated address.
2. The PDP-6 has been modified to have address condition
switches like those on the PDP-10. These switches are located in
166 bay 1.
3. The PDP-6 lacks the Address Break feature.
PDP-6 EXTRA MEMORY REFERENCES
The PDP-6 makes some unnecessary memory references that the PDP-10
does not make. For example:
SETZ AC,-1
PDP-6. Location 777777 is fetched from memory which may result in
a protection violation or a non-ex mem.
PDP-10. Location 777777 is not fetched.
The SKIPx instructions on the PDP-6 always store the data
redundantly. NEVER use a SKIP instruction on the PDP-6 to test a
flag set by the PDP-10.
BYTE INCREMENT (IBP, ILDB and IDPB)
1. PDP-6
If a carry from the address field into the index register field
occurs while incrementing the byte pointer, the new index register is
used for the effective address calculation of the byte pointer.
2. PDP-10
If the same carry occurs on the PDP-10, the old index field is used
for the effective address calculation unless an interrupt occurs
after the byte pointer is incremented and before the LDB or DPB is
started. In this case, the new index field is used and the result
is identical to that on the PDP-6. Since the results in this case
are likely to be unpredictable, one might be cautious in using this
feature.
3. The PDP-10 has been modified so that an IBP instruction with
a non-zero AC field will load the AC with the (incremented) byte
pointer.
STORE CYCLE DIFFERENCES
The PDP-6 stores the results of any instruction in the order: memory,
AC1, AC2. The PDP-10 stores the results in the order: AC1, memory,
AC2. Two instructions behave slightly differently as a result.
POP AC, AC
a. PDP-6: (AC)-1000001→AC
b. PDP-10: ((AC)r)→AC
BLT when:
a. Loading the AC's over the BLT pointer,and
b. An interrupt occurs,and
c. The memory word being transfered is being written over
the pointer AC,and
d. The BLT still has more transfers to go.
On the PDP-6 the pointer word is written over the
memory word. The instruction can reasonably continue with
the updated pointer. On the PDP-10 the updated pointer is
destroyed by the memory word. When the instruction
continues, the result is a BLT using the memory word as a
pointer. The difference is only in the magnitude of the
loss. Reasonable programming won't be bothered with this.
DIFFERENCES IN THE SUBTRACT ALGORITHM
PDP-6:
Ones complement the AC, 2's complement add, ones complement
the result (3 steps).
PDP-10:
Direct 2's complement subtract (1 step).
The difference results in the CRY0 and CRY1 flags on the
PDP-6 being the complement of the results for the same
subtraction on the PDP-10. For example, say SUBI 1,105 on
the PDP-6 resulted in the CRY0 and CRY1 flags being 1 and 0
respectively; The PDP-10 would set the flags to 0 and 1.
(This assumes that both were 0 initially.)
PRIORITY INTERRUPTS
The PDP-6 may only have a JSR in the interrupt locations in order to
call an interrupt routine and enter executive mode. The PDP-10 may
have a JSR, PUSHJ, or JSP. Only these instructions store PC flags so
if some other instruction were used the processor would not enter
EXEC mode, and making a correct return from the interrupt would be
impossible.
The PDP-6 allows interrupts to occur at two places in an instruction:
Prior to the instruction fetch and in the effective address
calculation loop. The PDP-10 allows interrupts only in the effective
address calculation loop.
This difference shows up when the PC exceeds memory
bound for a user-mode program and an illegal memory
reference occurs. If the interrupt program recognizes the
illegal memory reference, turns off the illegal memory
reference flag, and tries to get out of the APR channel
quickly by requesting an interrupt on a lower priority
channel and dismissing the APR interrupt to the PC word
(unmodified from the time of the interrupt), the result is:
PDP-6: Everything works fine because the interrupt on the
lower priority channel is recognized prior to the
instruction fetch.
PDP-10: Another illegal memory reference interrupt results
because the instruction fetch (using the
out-of-bounds PC) occurs before the interrupt on
the lower priority channel is recognized.
When the PDP-6 makes an illegal memory reference from a user-mode
program it restarts at the beginning of the instruction timing chain.
The PDP-10 restarts in the instruction chain after the place where a
instruction is normally fetched, resulting in a 0 instruction. Also,
the interrupt system has not set up to trap the illegal memory
reference during the effective address calculation for the 0
instruction. The result of all this is:
PDP-6: The illegal memory reference flag interrupt occurs
before the beginning of the next instruction.
PDP-10: Executive location 40 has a 0 written into it (the 0
instruction results in a UUO which is dumped into executive
location 40). The interrupt occurs during the effective
address calculation for the instruction in executive
location 41.
UUO's AND UNIMPLEMENTED INSTRUCTIONS
PDP-6
a. UUO's 040-077 trap to executive locations 40
and 41.
b. UUO`s 000-037 trap to user locations 40 and 41 if in
user mode. If in exec mode, they trap to executive locations
40 and 41. (Note that 000 is considered a legal user UUO.)
c. Unimplemented instructions 100-117, 131, and 243,
when executed, have no effect (no-op).
PDP-10
(The PDP-10 is usually operated in MA TRAP OFFSET mode. This
moves the EXEC trap locations from 40-61 to 140-161.)
a. UUO`s 000 and 040-77 trap to executive locations 140
and 141.
b. UUO`s 001-037 trap to user locations 40 and 41 if in
user mode. If in exec mode, they trap to executive locations
140 and 141.
c. Any unimplemented instruction from 100-177 traps to
executive locations 160 and 161.
d. Unimplemented instruction 257 results in no
operation.
NEW INSTRUCTIONS
XCT 1,E
XCT 1,E in EXEC mode causes the instruction in location E to
be executed with the memory reference(s) relocated by the current
contents of the protection/relocation register. The effective
address calculation is done without relocation. In the case of a
byte instruction, the byte pointer is fetched from exec address
space. The relocation applies only to the actual data
fetch/store(s). If the effective address of the instruction in E is
in the range 0-17 it is relocated (i.e., NOT mapped to physical
AC's).
FIX AC,233000
The FIX instruction has been added to the PDP-10 and the
PDP-6. FIX on the 10 is op-code 247. The FIX instruction on the 6 is
op-codes 120 through 130 inclusive and 247.
There is a CONS instruction on the PDP-6. If you really
want to know about the CONS instruction, look at the 166 prints.
MISCELLANEOUS DIFFERENCES
JFFO (op-code 243) is a no-op on the PDP-6.
The PDP-10 has second protect and relocate registers; the
PDP-6 does not.
It is sometimes desirable to pick between seemingly
equivalent instructions on the PDP-6 to get the maximum speed. This
is less often necessary on the PDP-10.
When the READ IN switch is actuated on the PDP-6, the effect
is the same as pushing start, except that the machine will start
executing in shadow memory (real core locations 0-17, not the AC`s).
The PDP-10 however sends a pulse on the I-O buss to a specific
device to load core.
The PDP-6 turns off the byte increment suppression flag when
the PC and flags are being saved at a UUO or PI trap. The PDP-10
turns it off whenever the PC and flags are saved.
The MI cannot be loaded by a program on the PDP-6.
JRST 2,A(XR) may be used to get an indexed return along with
flag restore from the index register. However on the PDP-6 the
flags are restored from the left half of the full-word sum of the
contents of XR and the JRST instruction itself. This is not usually
the desired effect, and indirect addressing should be used instead.
On the PDP-10 this instruction restores the flags from the left side
of XR which is considered the correct operation.
The PDP-10 has been equipped with a System Clobbered
Detector. This device will interrupt the APR if it is enabled and it
detects a write reference to absolute locations 40000 to 137777.
The detector is enabled by
DATAO PTR,[1] ;Bit 35 is the enable.
It is disabled by
DATAO PTR,[0]
The System Clobbered flag is bit 18 of CONI APR, and that flag is
cleared by a CONO APR, with bit 20 set.
STATUS REGISTERS
1. PC word
BIT ABBREVIATION PDP-10 FUNCTION PDP-6 FUNCTION
(if different)
0 AROV AR overflow flag
1 CRY0 AR carry 0 flag
2 CRY1 Ar carry 1 flag
3 FOV AR floating overflow PC change flag
flag
4 BIS Byte increment
suppression flag
5 User-mode flag
6 IOT User-mode flag
11 FXU Floating point exponent Not used
underflow flag
12 DCK Divide check flag Not used
2. CONI APR,
BIT PDP-10 FUNCTION PDP-6 FUNCTION
_ (if different)
18 | System Clobbered Not used
19 | PDL overflow flag
20 |_ IOT user mode flag
21 | Address break flag Not used
22 | MEM protect flag
23 |_ Non-ex-mem flag
24 | Not used
25 | Clock interrupt enable
26 |_ Clock flag
27 | Not used
28 | AR FOV interrupt enable PC change interrupt enable
29 |_ AR FOV flag PC change flag
30 | MA TRAP OFFSET Not used
31 | AR OV interrupt enable
32 |_ AR OV flag
33 | \
34 | > Processor PI channel
35 |_ /
3. CONO APR,
BIT PDP-10 FUNCTION PDP-6 FUNCTION
_ (if different)
18 | Clear PDL overflow flag
19 | I/O bus reset
20 |_ Clear System Clobbered Flag Not used
21 | Clear ADDR break flag Not used
22 | Clear mem protect flag
23 |_ Clear non-ex-mem flag
24 | Clear clock interrupt enable
25 | Set clock interrupt enable
26 |_ Clear clock flag
27 | Clear FOV interrupt enable Clear PC change interrupt enable
28 | Set FOV interrupt enable Set PC change interrupt enable
29 |_ Clear FOV flag Clear PC change flag
30 | Clear AROV interrupt enable
31 | Set AROV interrupt enable
32 |_ Clear AROV flag
33 | \
34 | > Processor PI channel
35 |_ /
4. CONI PI,
BIT PDP-10 FUNCTION PDP-6 FUNCTION
_ (if different)
18 | Power failure flag Not used
19 | Parity error flag
20 |_ Parity error interrupt enable Not used
21 | 1 \
22 | 2 |
23 |_ 3 |
24 | 4 > PI channels in progress Not used
25 | 5 |
26 |_ 6 |
27 | 7 /
28 | PI system on
29 |_ 1 \
30 | 2 |
31 | 3 |
32 |_ 4 > PI channels enabled
33 | 5 |
34 | 6 |
35 |_ 7 /
SUMMARY OF I/O DEVICES
This section lists the I-O devices on the computers at the
project. It supercedes SAILON No. 24, PDP/6 I/O DEVICE NUMBER
SUMMARY by Steve Russell and SAILON No. 25, THE MISCELLANEOUS OUTPUTS
by Steve Russell.
PDP-10 I/O BUS
Device Number Device
000 PDP-10 APR APR
004 PDP-10 PI system PI
010 167 High speed data channel IOP
100 PDP-10 paper tape punch PTP
104 PDP-10 paper tape reader PTR
120 PDP-10 console teletype TTY
124 Line printer LPT
200 136 data control for dectapes and magtapes DC
210 551 dectape control UTC
214 Dectape status UTS
220 516 magnetic tape control MTC
224 Magnetic tape status1 MTS
230 Magnetic tape status2 MTM
300 630 teletype scanner DCSA
304 Teletype scanner DCSB
310 Microswitch Keyboard Scanner DKB
340 Video Switch VDS
344 IOB EXT
350 .
354 .
360 .
364 .
370 .
374 IOB EXT
404 Television interface and spacewar buttons TV
430 III Display system control DP
434 III Display system keyboard scanner KBD
444 Librascope disk interface DSK
500 IBM Selector Channel PMP
504 IBM Selector Channel IBM
510 Data Disc controller DDD
774 Audio Switch ...
PDP-6 I/O BUS
Device number Device
000 PDP-6 APR APR
004 PDP-6 PI system PI
100 PDP-6 paper tape punch and Calcomp plotter PTP
104 PDP-6 paper tape reader PTR
120 PDP-6 console teletype TTY
204 136 data control in Kluge bay DCB
340 IOB EXT
344 .
350 .
354 .
360 .
364 .
370 .
374 IOB EXT
410 Sierra Camera driver
420 Electric arms
424 Analog to digital converter AD
440 Xerox Graphics printer XGP
500 Hand-Eye kludge D-to-A's and stepping motor drives
600 Misc. outputs (all channels)
700 Misc. outputs (channels 40 through 77)
730 Electronic clock PCLK